package com.gzyj.jtt808.v2013.enums;

import com.gzyj.jtt808.v2013.protocol.*;
import com.gzyj.jtt808.v2013.protocol.jtt1078.*;
import com.gzyj.jtt808.v2013.protocol.subiao.JTT808_0x9208;
import lombok.Getter;

/**
 * @author lhj
 */
@Getter
public enum BusinessDataType {

    终端通用应答(0x0001, "终端通用应答", JTT808_0x0001.class.getName()),
    终端注册(0x0100, "终端注册", JTT808_0x0100.class.getName()),
    终端鉴权(0x0102, "终端鉴权", JTT808_0x0102.class.getName()),
    终端心跳(0x0002, "终端心跳", JTT808_0x0002.class.getName()),
    查询终端属性(0x8107, "查询终端属性", JTT808_0x8107.class.getName()),
    查询终端属性应答(0x0107, "查询终端属性应答", JTT808_0x0107.class.getName()),
    查询指定终端参数(0x8106, "查询指定终端参数", JTT808_0x8106.class.getName()),
    查询终端参数应答(0x0104, "查询终端参数应答", JTT808_0x0104.class.getName()),
    设置终端参数(0x8103, "设置终端参数", JTT808_0x8103.class.getName()),
    终端注册应答(0x8100, "终端注册应答", JTT808_0x8100.class.getName()),
    位置信息汇报(0x0200, "位置信息汇报", JTT808_0x0200.class.getName()),
    平台通用应答(0x8001, "平台通用应答", JTT808_0x8001.class.getName()),
    驾驶员身份信息采集上报(0x0702, "驾驶员身份信息采集上报", JTT808_0x0702.class.getName()),
    文本信息下发(0x8300, "文本信息下发", JTT808_0x8300.class.getName()),


    实时音视频传输请求(0x9101,"实时音视频传输请求", JTT808_0x9101.class.getName()),
    音视频实时传输控制(0x9102,"音视频实时传输控制", JTT808_0x9102.class.getName()),
    实时音视频传输状态通知(0x9105,"实时音视频传输状态通知", JTT808_0x9105.class.getName()),
    查询资源列表(0x9205, "查询资源列表", JTT808_0x9205.class.getName()),
    终端上传音视频资源列表(0x1205, "终端上传音视频资源列表", JTT808_0x1205.class.getName()),
    文件上传指令(0x9206, "文件上传指令", JTT808_0x9206.class.getName()),
    文件上传完成通知(0x1206, "文件上传完成通知", JTT808_0x1206.class.getName()),

    /////////////////////////////////主动安全///////////////////////////////////////////////
    报警附件上传指令(0x9208, "报警附件上传指令", JTT808_0x9208.class.getName()),

    ;


    private int code;
    private String name;

    private String clazz;

    BusinessDataType(int id, String name, String clazz) {
        this.code = id;
        this.name = name;
        this.clazz = clazz;
    }

    public static BusinessDataType find(int code) {
        for (BusinessDataType val : BusinessDataType.values()) {
            if (val.getCode() == code) {
                return val;
            }
        }
        return null;
    }

}
